一文带你了解Zookeeper基本概念、集群搭建、使用方法

您所在的位置:网站首页 zookeeper部署 磁盘容量 一文带你了解Zookeeper基本概念、集群搭建、使用方法

一文带你了解Zookeeper基本概念、集群搭建、使用方法

2024-06-23 01:20| 来源: 网络整理| 查看: 265

本文图文并茂的描述了:zookeeper是什么,演示了Zookeeper集群如何搭建、Zookeeper常用命令的使用、如何查看Zookeeper日志;详细描述了Zookeeper数据模型、watch机制、ACL、集群选举机制。非常适合刚接触ZK的小伙伴哟,相信你读完之后,最基本也能描述出Zookeeper是个什么了。

ZooKeeper 一、ZooKeeper 1、Zookeeper概述

​ Zookeeper 是一个 分布式协调服务 的开源框架。主要作用是为分布式系统提供协调服务,包括但不限于:分布式锁、统一命名服务、配置管理、负载均衡、主控服务器选举以及主从切换等。

​ ZooKeeper本质上是一个分布式的小文件存储系统。提供类似与文件系统目录树方式的数据存储,并且可以对树中的节点进行有效管理。从而用来维护和监控存储的数据的状态变化。通过监控这些数据状态的变化,实现基于数据的集群管理。

2、Zookeeper = 文件系统 + 监听通知机制 + ACL 1、文件系统

​ Zookeeper维护一个类似文件系统的数据结构(如下官方示意图),每一个子目录项(如app1)都被称作为znode(目录节点),和文件系统一样,我们能够自由的对一个znode进行CRUD,也可以在znode下进行子znode的CRUD,唯一不同的是,znode是可以存储数据的。 在这里插入图片描述 ​ znode类型:

PERSISTENT:持久化节点 一旦客户端(client)在zookeeper服务器(server)上创建了一个持久化节点,只要客户端(client)不删除该节点,不论客户端(client)与zookeeper(server)断开/重连多少次,该节点依然存在。

PERSISTENT_SEQUENTIAL:持久化顺序编号目录节点 一旦客户端(client)在zookeeper服务器(server)上创建了一个持久化节点,只要客户端(client)不删除该节点,不论客户端(client)与zookeeper(server)断开/重连多少次,该节点依然存在。只是zookeeper给该节点名多追加了一个编号(例如:/app123456,这个编号是zookeeper给的)

EPHEMERAL:临时目录节点 客户端(client)在zookeeper(server)上创建了一个节点,但是,当客户端(client)与zookeeper(server)断开连接之后,该节点就会被zookeeper(server)删除。

EPHEMERAL_SEQUENTIAL:临时顺序编号目录节点 客户端(client)在zookeeper(server)上创建了一个节点,但是,当客户端(client)与zookeeper(server)断开连接之后,该节点就会被zookeeper(server)删除。只是zookeeper给该节点名多追加了一个编号

2、监听通知机制

​ 简单来说:client 注册监听它所关心的目录节点,当该目录节点发生变化(节点被改变、被删除、其子目录节点有增删改情况)时,ZK server会通过watcher监听机制将消息推送给client。(详情请看 四、Zookeeper Watch )

3、ACL(access control list 访问控制列表)

zookeeper在分布式系统中承担中间件的作用,它管理的每一个节点上都可能存储着重要的信息,因为应用可以读取到任意节点,这就可能造成安全问题,ACL的作用就是帮助zookeeper实现权限控制。

zookeeper的权限控制基于节点,每个znode可以有不同的权限。

子节点不会继承父节点的权限,访问不了该节点,并不代表访问不到其子节点。

结构:schema :id :permission 一个 ACL 权限设置通常可以分为 3 部分,分别是:权限模式(Scheme)、授权对象(ID)、权限信息(Permission)。最终组成一条例如“scheme :id :permission”格式的 ACL 请求信息。下面我们具体看一下这 3 部分代表什么意思:

ACL命令用法

Schema: 鉴权策略

schema描述world默认方式,相当于全世界都能访问digest即: “用户名+密码” 这种认证方式,也是业务中常用的ip使用IP认证的方式auth代表已经认证通过的用户(cli中可以通过addauth digest user:pwd 来添加当前上下文中的授权用户)

授权对象 ID

权限模式授权对象world只有一个ID:“anyone”digest自定义,通常是用户名:密码,在ACl中使用时,表达式将是username:base64编码的SHA1.例如"admin:u53OoA8hprX59uwFsvQBS3QuI00="(明文密码为123456)ip通常是一个Ip地址或者是Ip段, 例如192.168.xxx.xxx或者 192.168.xxx.xxx/xxxsuper与digest模式一样

权限Permission

权限简写描述createc创建权限,授予权限的对象可以在数据节点下创建子节点;readr读取权限,授予权限的对象可以读取该节点的内容以及子节点的信息;writew更新权限,授予权限的对象可以更新该数据节点;deleted删除权限,授予权限的对象可以删除该数据节点的子节点;admina管理者权限,授予权限的对象可以对该数据节点体进行 ACL 权限设置。

ps:这5种权限中,delete是指对子节点的删除权限,其它4种权限指对自身节点的操作权限。每个节点都有维护自身的 ACL 权限数据,即使是该节点的子节点也是有自己的 ACL 权限而不是直接继承其父节点的权限

3、session会话机制

client请求和服务端建立连接,服务端会保留和标记当前client的session,包含 session过期时间、sessionId ,然后服务端开始在session过期时间的基础上倒计时,在这段时间内,client需要向server发送心跳包,目的是让server重置session过期时间。

4、Zookeeper特性 全局数据一致性(


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3